package host.springboot.framework.autoconfigure;

import host.springboot.framework.autoconfigure.aop.properties.KsAopProperties;
import host.springboot.framework.autoconfigure.cache.properties.KsCacheProperties;
import host.springboot.framework.autoconfigure.filter.properties.KsFilterProperties;
import host.springboot.framework.autoconfigure.web.properties.KsWebProperties;
import host.springboot.framework.core.constant.KrismileConstant;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

/**
 * 标准配置文件
 *
 * @author JiYinchuan
 * @since 1.0.0
 */
@Data
@ConfigurationProperties(prefix = KrismileProperties.KEY)
public class KrismileProperties {

    /**
     * krismile 配置文件 Key
     */
    public static final String KEY = KrismileConstant.KRISMILE_LOWERCASE;

    /**
     * AOP配置文件
     */
    @NestedConfigurationProperty
    private KsAopProperties aop = new KsAopProperties();

    /**
     * Filter配置文件
     */
    @NestedConfigurationProperty
    private KsFilterProperties filter = new KsFilterProperties();

    /**
     * Web配置文件
     */
    @NestedConfigurationProperty
    private KsWebProperties web = new KsWebProperties();

    /**
     * Cache配置文件
     */
    @NestedConfigurationProperty
    private KsCacheProperties redis = new KsCacheProperties();

}
